package com.ridaizu.common;

import java.text.SimpleDateFormat;

/**
 * @author tsushima
 * 定数クラス<br>
 * SESSION_*：セッションスコープ
 * REQUEST_*：リクエストスコープ
 * PARAM_*:HTTPパラメータ
 */
public class Def {

	/**
	 * 共通で利用される日付、時刻書式
	 */
	public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


	/**
	 * 使用する文字コード文字列表現
	 */
	public static final String CHARACTER_ENCODING="UTF-8";

	/**
	 * 使用する文字コード文字列表現
	 */
	public static final String CHARACTER_ENCODING_ISO_2022_jp="iso-2022-jp";

	/**
	 * クッキー：ユーザID
	 */
	public static final String COOKIE_UID = "CG_UID";

	/**
	 * クッキー：サーバーID
	 */
	public static final String COOKIE_SID = "CG_SID";

	/**
	 * クッキー：パスワード
	 */
	public static final String COOKIE_PASSWORD = "CG_PASS";

	/**
	 * クッキー：端末ID
	 */
	public static final String COOKIE_TERMINAL_ID = "CG_TID";

	/**
	 * クッキー：管理者端末ID
	 */
	public static final String COOKIE_BUSINESS_TERMINAL_ID = "CG_BTID";

	/**
	 * クッキー：携帯端末ID
	 */
	public static final String COOKIE_PHONE_TERMINAL_ID = "CG_PTID";


	/**
	 * リクエスト：クッキー→認証処理引き渡しUID
	 */
	public static final String REQUEST_COOKIE_UID = "REQUEST_COOKIE_UID";

	/**
	 * リクエスト：クッキー→認証処理引き渡しサーバーID
	 */
	public static final String REQUEST_COOKIE_SID = "REQUEST_COOKIE_SID";

	/**
	 * リクエスト：クッキー→認証処理引き渡しパスワード
	 */
	public static final String REQUEST_COOKIE_PASSWORD = "REQUEST_COOKIE_PASSWORD";

	/**
	 * チェック機能結果
	 */
	public static final String REQUEST_CHECK_STATE="REQUEST_CHECK_STATE";

	/**
	 * 画面へ表示するメッセージServlet->JSP通知用
	 */
	public static final String REQUEST_MESSAGES="REQUEST_MESSAGES";

	/**
	 * SAMLレスポンス
	 */
	public static final String REQUEST_SAML_RESPONSE="REQUEST_SAML_RESPONSE";

	/**
	 * RELAY STATE
	 */
	public static final String REQUEST_RELAY_STATE="REQUEST_RELAY_STATE";

	/**
	 * リクエストへ格納する遷移先URL
	 */
	public static final String REQUEST_RETURN_PAGE="returnPage";

	/**
	 * ログイン履歴を表示するかどうかのフラグ
	 */
	public static final String REQUEST_SHOW_LOGIN_HISTORY_FLG="REQUEST_SHOW_LOGIN_HISTORY_FLG";

	/**
	 * 事前認証のフラグ
	 */
	public static final String PRE_SIGN_FLG="PRE_SIGN_FLG";

	/**
	 * ログアウト完了後、遷移するURL（通常はログイン画面を表示した際のSamlRequest.RelayState)
	 */
	public static final String REQUEST_PRELOGOUT_URL="REQUEST_PRELOGOUT_URL";

	/**
	 * 生成したトークンパスワード
	 */
	public static final String REQUEST_TOKEN_PASSWORD="REQUEST_TOKEN_PASSWORD";

	/**
	 * 戻り先URL
	 */
	public static final String REQUEST_RETURN_URL="REQUEST_RETURN_URL";

	/**
	 * 自動表示されるログインUSERKEY
	 */
	public static final String REQUEST_AUTO_LOGIN_USER_KEY="REQUEST_AUTO_LOGIN_USER_KEY";

	/**
	 * 自動表示されるログインID
	 */
	public static final String REQUEST_AUTO_LOGINID="REQUEST_AUTO_LOGINID";

	/**
	 * 自動表示されるサインオンID
	 */
	public static final String REQUEST_AUTO_SECOND_LOGINID="REQUEST_AUTO_SECOND_LOGINID";

	/**
	 * 自動ログイン時、サーバID
	 */
	public static final String REQUEST_SERVER_ID="REQUEST_SERVER_ID";

	/**
	 * 事前通知サブレットからのリクエスト
	 */
	public static final String REQUEST_IS_FROM_PASS_EXP="REQUEST_IS_FROM_PASS_EXP";

	/**
	 * 事前通知サブレットからのサーバID
	 */
	public static final String REQUEST_PASS_EXP_SERVER_ID="REQUEST_PASS_EXP_SERVER_ID";

	/**
	 * 事前通知サブレットからのログインID
	 */
	public static final String REQUEST_PASS_EXP_LOGIN_NAME="REQUEST_PASS_EXP_LOGIN_NAME";

	/**
	 * WILLCOM端末ID
	 */
	public static final String SESSION_WILLCOM_CUID="SESSION_WILLCOM_CUID";

	/**
	 * ログアウト完了後、遷移するURL（通常はログイン画面を表示した際のSamlRequest.RelayState)
	 */
	public static final String SESSION_PRELOGOUT_URL="SESSION_PRELOGOUT_URL";

	/**
	 * ログイン中のSSOサーバ上ユーザ
	 */
	public static final String SESSION_LOGIN_USER="SESSION_LOGIN_USER";

	/**
	 * 端末登録ログイン中のSSOサーバ上ユーザ
	 */
	public static final String SESSION_TERMINAL_REGISTER_LOGIN_USER="SESSION_TERMINAL_REGISTER_LOGIN_USER";

	/**
	 * ログアウト対象リスト
	 */
	public static final String SESSION_LOGOUT_LIST="SESSION_LOGOUT_LIST";

	/**
	 * ログアウト現在対象
	 */
	public static final String SESSION_LOGOUT_CURRENT="SESSION_LOGOUT_CURRENT";


	/**
	 * セッションに格納するSAMLリクエスト
	 */
	public static final String SESSION_SAML_REQUEST="SESSION_SAML_REQUEST";

	/**
	 * 認証失敗した回数のカウント情報
	 */
	public static final String SESSION_AUTH_FAILED_COUNT="SESSION_AUTH_FAILED_COUNT";

	/**
	 * 事前認証用リスト
	 */
	public static final String SESSION_PRESIGNIN_LIST="SESSION_PRESIGNIN_LIST";

	/**
	 * 事前認証完了フラグ
	 */
	public static final String SESSION_PRESIGNIN_FINISHED="SESSION_PRESIGNIN_FINISHED";

	/**
	 * トークンでの認証を行うUSER
	 */
	public static final String SESSION_TOKEN_AUTH_USER="SESSION_TOKEN_AUTH_USER";

	/**
	 * 端末ID登録を行うUSER
	 */
	public static final String SESSION_TERMINAL_REGISTER_USER = "SESSION_TERMINAL_REGISTER_USER";

	/**
	 * 管理者端末ID登録を行うUSER
	 */
	public static final String SESSION_BUSINESS_TERMINAL_REGISTER_USER = "SESSION_BUSINESS_TERMINAL_REGISTER_USER";

	/**
	 * Googleに保存されるリダイレクトURLのパラメータ名
	 */
	public static final String SESSION_RELAY_STATE = "SESSION_RELAY_STATE";

	/**
	 * パスワード有効期限の事前認証を行うUSER
	 */
	public static final String SESSION_PASSWORD_EXPIRATION_USER = "SESSION_PASSWORD_EXPIRATION_USER";

	/**
	 * PC端末制限：端末名
	 */
	public static final String PARAM_TERMINAL_NAME="terminalName";

	/**
	 * 管理者PC端末制限：端末名
	 */
	public static final String PARAM_BUSINESS_TERMINAL_NAME="businessTerminalName";

	/**
	 * 管理者PC端末制限：端末名
	 */
	public static final String PARAM_EXPIRATION="expiration";

	/**
	 * 管理者PC端末制限：端末名
	 */
	public static final String PARAM_NOT_EXPIRATION="notExpiration";

	/**
	 * クッキーを使用して認証情報の保存を行うか。
	 */
	public static final String PARAM_USE_COOKIE_FLG="useCookieFlg";

	/**
	 * パラメータで渡されてくるSAMLリクエスト。
	 */
	public static final String PARAM_SAML_REQUEST="SAMLRequest";

	/**
	 * パラメータで渡されるURL
	 */
	public static final String PARAM_RETURN_PAGE="returnPage";

	/**
	 * パラメータで渡される遷移元
	 */
	public static final String PARAM_RELAY_STATE="RelayState";

	/**
	 * 言語指定パラメータ
	 */
	public static final String PARAM_LANG="lang";


	/**
	 * パスワード変更・パスワードリセット画面からの戻り先のURL
	 */
	public static final String PARAM_RETURN_URL="returnurl";

	/**
	 * フォームユーザーID入力
	 */
	public static final String PARAM_LOGIN_NAME="uid";

	/**
	 * ドメイン名入力
	 */
	public static final String PARAM_SERVER_ID="serverId";

	/**
	 * 代理OWNERドメイン名入力
	 */
	public static final String PARAM_OWNER_SERVER_ID="ownerServerId";

	/**
	 * 代理TARGETドメイン名入力
	 */
	public static final String PARAM_TARGET_SERVER_ID="targetServerId";

	/**
	 * フォームパスワード入力
	 */
	public static final String PARAM_LOGIN_PASSWORD="password";

	/**
	 * フォーム旧パスワード入力
	 */
	public static final String PARAM_OLD_PASSWORD="oldpassword";

	/**
	 * フォーム新パスワード入力
	 */
	public static final String PARAM_NEW_PASSWORD="newpassword";

	/**
	 * フォーム確認パスワード入力
	 */
	public static final String PARAM_CNF_PASSWORD="cnfpassword";

	//自動ログイン機能追加 2010/12月末 ここから
	/**
	 * フォーム携帯ログイン時に再度パスワード入力
	 */
	public static final String PARAM_PHONE_AUTO_LIMITATION="phone_auto_limitation";
	//2010/12月末 ここまで

	/**
	 * 代理ログイン:オーナーID
	 */
	public static final String PARAM_OWNER_ID="ownerId";

	/**
	 * 代理ログイン:オーナーパスワード
	 */
	public static final String PARAM_OWNER_PASSWORD="ownerPassword";

	/**
	 * 代理ログイン:ターゲットID
	 */
	public static final String PARAM_TARGET_ID="targetId";

	/**
	 * カスタムログイン時に返すメッセージ
	 */
	public static final String PARAM_SSO_MESSAGE="ssoLoginMessage";

	/**
	 * 端末ID登録時、社用端末フラグ
	 */
	public static final String PARAM_PHONE_ID_REGISTER_BUSINESS_FLG = "phoneIdRegisterBusinessFlg";

	/**
	 * PC端末ID登録時、社用端末フラグ
	 */
	public static final String PARAM_PC_ID_REGISTER_BUSINESS_FLG = "pcIdRegisterBusinessFlg";

	/**
	 * 2要素認証用トークン種別
	 */
	public static final String PARAM_TOKEN_TYPE = "tokenType";

	/**
	 * トークンパスワード
	 */
	public static final String PARAM_TOKEN_PASSWORD="tokenPassowrd";

	/**
	 * トークンパスワード生成フラグ
	 */
	public static final String PARAM_TOKEN_PASSWORD_GEN_FLG="tokenPasswordGenFlg";

	/**
	 * カスタムログイン履歴jissen：緊急連絡先１
	 */
	public static final String PARAM_CONTACT_ATTR1="contactAttr1";

	/**
	 * カスタムログイン履歴jissen：緊急連絡先２
	 */
	public static final String PARAM_CONTACT_ATTR2="contactAttr2";

	/**
	 * カスタムログイン履歴sonylife：処理区分
	 */
	public static final String PARAM_OPERATION_CODE="operationCode";

	//自動ログイン機能追加 2010/12月末 ここから
	/**
	 * 自動ログインパラメーター
	 */
	public static final String AUTOLOGIN="autoLogin";

	/**
	 * JSPレイアウト
	 */
	public static final String LAYOUT_JSP_RESULT_FRAME = "result_frame.jsp";
	public static final String LAYOUT_JSP_ERROR = "error.jsp";
	public static final String LAYOUT_JSP_CHANGE_PASSWORD = "change_password.jsp";
	public static final String LAYOUT_JSP_CHANGE_PASSWORD_FIN = "change_password_fin.jsp";
	//2010/12月末 ここまで

	/**
	 * Google domain
	 */
	public static final String GOOGLE_DOMAIN = "google.com";

	/**
	 * パスワード期限切れの場合、サーバIDをSeesionに設定パラメータ
	 */
	public static final String PARAM_CP_SERVER_ID = "server_id";

	/**
	 * パスワード期限切れの場合、ユーザキーをSeesionに設定パラメータ
	 */
	public static final String PARAM_CP_USER_KEY = "user_key";

	/**
	 * パスワード期限切れの場合、ログインIDをSeesionに設定パラメータ
	 */
	public static final String PARAM_CP_LOGIN_NAME = "cp_uid";

	/**
	 * パスワード画面で、ログイン情報ない場合、ログイン画面を戻るパラメータ
	 */
	public static final String PARAM_CP_LOGIN_PAGE = "doLogin";

	/**
	 * request エラーのパラメータ
	 */
	public static final String PARAM_ERROR_MESSAGE="ERROR_MESSAGE";

	/**
	 * CSRF対応のトークンネーム
	 */
	public static final String PARAM_TOKEN_NAME = "TOKEN_NAME";

    public static final long MILLI_PER_DAY = 1000 * 60 * 60 * 24;

    public static final long MILLI_PER_HOUR = 1000 * 60 * 60;

    public static final String PARAM_CONTINUE = "continue";

	/**
	 * ワンタイムURLパラメータ
	 */
	public static final String PARAM_ONEPASS = "onepass";

	/**
	 * 認証コードパラメータ
	 */
	public static final String PARAM_AUTH_CODE = "auth_code";

	/**
	 * 携帯端末ID
	 */
	public static final String SESSION_PHONE_ID="SESSION_PHONE_ID";

}
